#ifndef NODE_HPP
#define NODE_HPP

	#include <cstddef>

	#include <memchart.hpp>

	struct Node
	{
		int   data;
		Node *a, *b, *c, *d;

		Node ()
			/* Don't care about destruction */
			: a(NULL), b(NULL), c(NULL), d(NULL)
		{
			static int num = 1;

			data = num++;
		}


		MC_BEGIN(Node)
			MC_MEMBER(data)
			MC_MEMBER(a)
#ifndef SINGLE_LIST
			MC_MEMBER(b)
#ifndef LIST
			MC_MEMBER(c)
			MC_MEMBER(d)
#endif /* LIST */
#endif /* SINGLE_LIST */
		MC_END
	};

#endif /* NODE_HPP */
